csplit
Linux Command – csplit ใช้ในการแตก file ออกมาเป็น file เล็กๆหลาย file ตามจำนวนบรรทัดที่กำหนด
คำสั่ง
จากตัวอย่าง file มีทั้งหมด 18 บรรทัด
$ cat file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
1. ทำการแบ่ง file ตามจำนวนบรรทัดที่กำหนด
csplit <filename> <number of line> <number of line> ….
จากตัวอย่างคือ ใส่ 2 4 ลงไป program จะทำการแบ่ง file1 ออกมาแค่บรรทัดที่1 ส่วนบรรทัดที่2-3 จะไปอยู่ที่file2 และตั้งแต่บรรทัดที่4 เป็นต้นไปจะไปอยู่ใน file สุดท้าย
$ ls -ltr total 4 -rw-r--r-- 1 root root 45 May 7 12:27 file $ cat file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $ ls -ltr total 4 -rw-r--r-- 1 root root 45 May 7 12:27 file $ csplit file 2 4 2 4 39 $ ls -ltr total 16 -rw-r--r-- 1 root root 45 May 7 12:27 file -rw-r--r-- 1 root root 39 May 7 12:33 xx02 -rw-r--r-- 1 root root 4 May 7 12:33 xx01 -rw-r--r-- 1 root root 2 May 7 12:33 xx00 $ cat xx00 1 $ cat xx01 2 3 $ cat xx02 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
2. สามารถตั้งชื่อ prefix ของ file ที่แบ่งออกมาได้
csplit -f <filename> <number of line> <number of line> ….
ใช้ -f option ตามด้วย prefix ที่ต้องการ และ -b option สำหรับกับหนดรูปแบบเลขลำดับของ prefix sequence
$ sudo csplit -f 'test' -b '%03d' file 2 4 2 4 39 $ $ ls -ltr total 16 -rw-r--r-- 1 root root 45 May 7 12:27 file -rw-r--r-- 1 root root 39 May 7 12:36 test002 -rw-r--r-- 1 root root 4 May 7 12:36 test001 -rw-r--r-- 1 root root 2 May 7 12:36 test000
โครงสร้างคำสั่ง
csplit [OPTION]... FILE PATTERN...
รายละเอียด
เป็นคำสั่งที่ใช้ในการแตก file ออกมาเป็น file เล็กๆหลาย file ตามจำนวนบรรทัดที่กำหนด สามาถกำหนดได้ว่าจะให้สร้าง file ด้วย prefix อย่างไร
Option
Mandatory arguments to long options are mandatory for short options too. -b, --suffix-format=FORMAT use sprintf FORMAT instead of %02d -f, --prefix=PREFIX use PREFIX instead of 'xx' -k, --keep-files do not remove output files on errors --suppress-matched suppress the lines matching PATTERN -n, --digits=DIGITS use specified number of digits instead of 2 -s, --quiet, --silent do not print counts of output file sizes -z, --elide-empty-files remove empty output files --help display this help and exit --version output version information and exit Each PATTERN may be: INTEGER copy up to but not including specified line number /REGEXP/[OFFSET] copy up to but not including a matching line %REGEXP%[OFFSET] skip to, but not including a matching line {INTEGER} repeat the previous pattern specified number of times {*} repeat the previous pattern as many times as possible A line OFFSET is a required '+' or '-' followed by a positive integer.
กลุ่มคำสั่ง
–
Reference:
Author: Suphakit Annoppornchai
Credit: https://saixiii.com
[…] csplist […]